#ifndef ITEM_HH_
# 	define ITEM_HH_

# 	include "common/stl.h"
# 	include "common/Object.hh"
# 	include "media/Sound.hh"

// shd regroup items / items in inventory ?
// an item *MUST* have a *STRICTLY* positive weight
// => avoid infinite lists
// (on character, which is *NOT* limited in number of item)
// number of storages (including number of lockers) is limited though
// total cd be about 512 items + on character stuff

class Item : public Object
{
	public:
		Item();
		virtual ~Item();

		/** \return true if this item can be fixed
	 	 ** calc based on durability ?
		 */
		bool repairable();

	private:
		// we could flag them (waterProof / pickable) ?
		bool _waterProof; /// affected by water ? how ? reparable ?
		bool _pickable; /// does a character can pick it up ?
		bool _bulletProof; // nb shot limit ? // local damages ?


		float _price; // in dollars ? // = f(durability)
		float _durability;
		// bool _available; /// can we purchase it ? // useless ?

		// __________ graphics attributes __________
		// TODO: re-enable
		//Sprite _sprite; // on inventory
		//Model3D _model; // 3D model: on someone
		//Model3D _modelGround; // 3D model: on ground // cd be == NULL if same as _model // usefull ?



		// __________ inventory display __________
		// float _length; /// in meters

		std::string _brand;
		std::string _name;
		std::string _description;
		//Sound _audioDescription;
};

#endif /* !ITEM_HH_ */
